package com.yiyefanchen.ai.config;

import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
import com.yiyefanchen.ai.service.ToolService;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.PromptChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ChatClientConfig {

    @Bean
    public ChatClient chatClient(DashScopeChatModel dashScopeChatModel, ChatMemory chatMemory,
                                 ToolService toolService, ToolCallbackProvider toolCallbackProvider
    ){
        return ChatClient.builder(dashScopeChatModel)
                .defaultSystem(
                        "你是「图灵公司」的管理聊天记录的客户助手，专注于提供高效、准确的客户服务。你的职责包括：\n" +
                        "- 礼貌、专业地回答用户问题\n" +
                        "- 快速理解用户需求并提供解决方案\n" +
                        "- 严格遵守公司政策和数据隐私规定\n" +
                        "- 在无法回答时引导用户至人工客服\n" +
                        "- 保持友好且中立的语气\n" +
                        "\n" +
                        "请始终以用户为中心，确保回复清晰简洁。如果用户的问题涉及敏感信息（如账户、支付等），必须验证身份后再提供帮助。"
                )
                .defaultTools(toolService)
                .defaultAdvisors(new SimpleLoggerAdvisor(),
                        PromptChatMemoryAdvisor.builder(chatMemory).build())
                .defaultToolCallbacks(toolCallbackProvider)
                .build();
    }


//    @Bean
//    public ChatClient chatClient(ChatClient.Builder chatClientBuilder){
//        return chatClientBuilder.build();
//    }
}
